﻿using System;
using System.Data;
using System.Configuration;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace Aga.Psad.Mvc.Helpers
{
    public class EmailHelper
    {
        private const string BREAK_LINE = "<br />";

        public static void ComposeAndSendEmail(string to, string from, string subject, string message)
        {
            MailMessage mail = new MailMessage();
            mail.To.Add(new MailAddress(to));
            mail.Subject = subject;
            mail.From = new MailAddress("noreply@aga-archivos.com.ar", from);
            mail.Body = message;
            mail.BodyEncoding = Encoding.UTF8;
            mail.IsBodyHtml = true;
 
            //SmtpMail.Send(objMail); 
            string host = ConfigurationManager.AppSettings["SmtpHost"];
            int port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"]);

            SmtpClient smtp = new SmtpClient(host, port);

            smtp.Credentials = new NetworkCredential("sistemas@aga-archivos.com.ar", "H0m3r0aga");

            smtp.Send(mail);
        }


        public static void SendContactMail(
            string nombre,
            string apellido,
            string empresa,
            string sector,
            string telefono,
            string email,
            string comentarios)
        {

            StringBuilder strBodyText = new StringBuilder();
            strBodyText.Append("Se ha recibido una nueva consulta desde la web. <br />");
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Nombre: </strong>" + nombre);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Apellido: </strong>" + apellido);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Empresa: </strong>" + empresa);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Sector: </strong>" + sector);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Telefono: </strong>" + telefono);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Email: </strong>" + email);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Comentarios: </strong>" + comentarios);
            strBodyText.Append(BREAK_LINE);

            string to = ConfigurationManager.AppSettings["DestinatarioEmailConsultas"];

            ComposeAndSendEmail(to, "Web AGA", "Nueva Consulta desde la Web", strBodyText.ToString());

        }

	//call this from anywhere for example : 
	// int sentmailstatus = SendResetPassEmail("jinn", "abc", "jinn@jinn.com")
        public static void SendResetPassEmail(string username, string pass, string useremail)
        {
            StringBuilder strBodyText = new StringBuilder();
            strBodyText.Append("Estimado " + username + ", <br />");
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("Usted ha solicitado la recuperación de su contraseña, la cual le adjuntamos en éste e-mail: <br />");
            strBodyText.Append(BREAK_LINE);
            //strBodyText.Append("Username: " + user.Username + " <br />");
            strBodyText.Append("Usuario: " + username + " <br />");
            strBodyText.Append("Contraseña: " + pass +  "<br />");
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("Si usted no ha solicitado la recuperación de la contraseña, puede que otra persona lo haya intentado. ");
            strBodyText.Append("Si tiene dudas de esto, por favor, contacte al administrador del sistemas enviando un mail a <a href=\"mailto:admin@aga-archivos.com.ar\">admin@aga-archivos.com.ar</a>.");
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("Saludos, <br />");
            strBodyText.Append("El Administrador.");

            ComposeAndSendEmail(useremail, "AGA Soluciones de Archivos SA", "Recuperación de Contraseña", strBodyText.ToString());
        }


        internal static void SendServiceEstimateMail(
            string nombre,
            string apellido,
            string empresa,
            string sector,
            string telefono,
            string email, 
            string tipoDocumentacion, 
            string ubicacion, 
            string cantidadCajas, 
            string cantidadConsultas, 
            string servicios, 
            string comentarios)
        {
            StringBuilder strBodyText = new StringBuilder();
            strBodyText.Append("Se ha recibido una nueva consulta desde la web. <br />");
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Nombre: </strong>" + nombre);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Apellido: </strong>" + apellido);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Empresa: </strong>" + empresa);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Sector: </strong>" + sector);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Telefono: </strong>" + telefono);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Email: </strong>" + email);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Tipo de Documentación: </strong>" + tipoDocumentacion);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Ubicación: </strong>" + ubicacion);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Cantidad de Cajas: </strong>" + cantidadCajas);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Cantidad de Consultas: </strong>" + cantidadConsultas);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Servicios: </strong>" + servicios);
            strBodyText.Append(BREAK_LINE);
            strBodyText.Append("<strong>Comentarios: </strong>" + comentarios);
            strBodyText.Append(BREAK_LINE);

            string to = ConfigurationManager.AppSettings["DestinatarioEmailCotizaciones"];

            ComposeAndSendEmail(to, "Web AGA", "Nuevo Pedido de Cotizacion desde la Web", strBodyText.ToString());
        }
    }
}
